/**
 * @file label.c
 * @brief Fichier source du module label.
 *
 * @author Rachid Delory, Mamadou Keita, Florian Bernard
 */

/* *********************************************************************

                       Librairies de label                          

********************************************************************* */

#include "label.h"

/* *********************************************************************

                        Fonctions                                      

********************************************************************* */

void init_Lab(Label * label)
{
  if(label)
    {
      label->id = 0;
      label->libelle = NULL;
      label->maj = 0;
      label->sup = 0;
    }
}

void liberer_Lab(Label * label)
{
  if(label)
    {
      label->id = 0;
      if(label->libelle)
	{
	  free(label->libelle);
	  label->libelle = NULL;
	}
    }
}

Label * creer_Lab()
{
  Label *label;
  label = (Label *) malloc ( 1 * sizeof(Label));
  init_Lab(label);
  return label;
}

void detruire_Lab(Label ** label)
{
  if((*label))
    {
      liberer_Lab((*label));
      free((*label));
      (*label) = NULL;
    }
}

void copier_Lab(Label **dest, const Label *src)
{
  if((*dest) == NULL)
    {
      (*dest) = creer_Lab();
    }
  if(src)
    {
      (*dest)->id = src->id;
      copier_Uti(&((*dest)->libelle), src->libelle);
    }
}
unsigned int getId_Lab(const Label * ptr)
{
  if(ptr)
    return ptr->id;
  return 0;
}

void setId_Lab(Label *ptr, const unsigned int val)
{
  if(ptr)
    ptr->id = val;
}

char * getLibelle_Lab(const Label * ptr)
{
  if(ptr)
    return ptr->libelle;
  return NULL;
}

void setLibelle_Lab(Label *ptr, const char * val)
{
  if(ptr)
    {
      copier_Uti(&(ptr->libelle), val);
    }
}

void setMaj_Lab(Label *ptr, const char b)
{
  if(ptr)
    {
      ptr->maj = b;
      if(b == 1)
	ptr->sup = !b;
    }
}

char getMaj_Lab(const Label *ptr)
{
  if(ptr)
    return ptr->maj;
  return 0;
}

void setSup_Lab(Label *ptr, const char b)
{
  if(ptr)
    {
      ptr->sup = b;
      if(b == 1)
	ptr->maj = !b;
    }
}

char getSup_Lab(const Label *ptr)
{
  if(ptr)
    return ptr->sup;
  return 0;
}
